import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [
  // {
  //   path: '/',
  //   redirect: '/home'
  // },
  {
    path: '/home',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import( /* webpackChunkName: "about" */ '../views/About.vue')
  }
]

const router = new VueRouter({
  routes
})

//  2.定义导航守卫(注意位置)
//   beforeEach: 循环遍历用户的所有的请求.(拦截)
//               在其中需要定义一个回调函数(3个参数)
//  参数介绍:  to :要访问的请求路径
//            from: 从哪个页面跳转而来
//            next: 表示请求放行
// 业务需求: 1.如果用户请求/login
//         2.如果不是login则判断是否登录 token

/* 配置路由导航守卫 控制权限 Vue所提供的功能 */
// 关于参数说明
// 1.to  要跳转的网址 对象 具有path等属性
// 2.from  请求从哪里来 对象 具有path等属性
// 3.next 回调函数 放行/跳转 函数
// router.beforeEach((to, from, next) => {
//   // 1.如果用户访问/login 请求应该放行(next()) 终止程序(return)
//   if (to.path === '/home' ) return next()
//   // 2.如果用户访问不是login 则需要校验是否登录 token
//   const token = window.sessionStorage.getItem('token')
//   // 3.若token为空(null) 跳转到login页面
//   if (!token) return next('/home')
//   // //将所有请求放行
//   next()
// }) // 注:此处只是校验token是否为空 是一个演示 实际情况应该在后端存储一个token 然后与session里的token比较


export default router
